【小ネタ】Windows10のWSLでbrewコマンドを使う
はじめに
こんにちは!AWS事業本部、岩本町オフィスの島川です。
macOS用のパッケージマネージャーであるbrewコマンド。
Githubで公開されているようなコマンドのインストールはこれが前提であることが多いです...。
Windows端末を使っていて、開発・検証をやろうとするとぶつかる壁であります。
そこで今回Windows10の機能であるWSL(Windows Subsystem for Linux)でUbuntuを起動し、brewでコマンドをインストールするまでをやってみました。
インストールしてみるコマンドはremind101/assume-roleです。
※AWSのAssume Role機能の実行を便利にしてくれるコマンド
なお、WSLを使う理由としては下記のとおりです。
- すぐに使える。用意にかかる時間が少ない。
- リソース消費が少ない。
- Linuxだから取り回しが良い。何かと都合がよい。
WSLの初期セットアップについては下記ブログが参考になります。
Windows 10 上にUbuntu18.04をインストールしPython3を実行するまで(Windows Subsystem for Linux)
やってみた
環境について
- Windows10 バージョン1809
- WSLはバージョン1709以降である必要があるので注意です
- WSL Ubuntu 18.04 LTS
- Microsoft Storeからインストール済
brewコマンドをインストールする
- まずはbrewコマンドを打ってみる
$ brew Command 'brew' not found, but can be installed with: sudo apt install linuxbrew-wrapper
入っていなかったようで、インストールコマンドを教えてくれました。linuxbrew-wrapperはその名の通りlinux版のbrewです。
- パッケージをアップデートする。
$ sudo apt update
- brewコマンド(linuxbrew-wrapper)をインストール
$ sudo apt install linuxbrew-wrapper
- brew doctorでコマンドをチェック
$ brew doctor
私の環境ではパーミッションと環境変数で怒られたので以下作業を行いました。
$ echo 'umask 002' >> ~/.bash_profile $ echo 'export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"' >> ~/.bash_profile $ echo 'export PATH="/home/linuxbrew/.linuxbrew/sbin:$PATH"' >> ~/.bash_profile
Terminalを再起動して再度実行
$ brew doctor Your system is ready to brew.
診断OKでした。
brewを使ってコマンドをインストールする
$ brew install remind101/formulae/assume-role
→インストールできたので実行してみます!
$ assume-role assume-role is a command line tool to help assume roles through a bastion account with MFA. Store your bastion account credentials here ~/.aws/credentials Usage: assume-role [account_name] [role] [mfa_token] [aws-region] account_name account id or alias aliases stored in ~/.aws/accounts as JSON {"alias": account_id} [default 'default'] role the role to assume into the account [default 'read'] mfa_token The MFA token for the user only valid if not using SAML for auth aws_region region to assume into default set in ~/.aws/config
PATHもちゃんと通ってます。便利。
remind101/assume-roleコマンドのセットアップについてはこちら参考になります。
さいごに
Windowsでも簡単にLinux環境を用意することができるWSLぜひ使ってみてください。
おまけ
ホスト側とファイル共有したい
$ df -h Filesystem Size Used Avail Use% Mounted on rootfs 238G 62G 176G 26% / none 238G 62G 176G 26% /dev none 238G 62G 176G 26% /run none 238G 62G 176G 26% /run/lock none 238G 62G 176G 26% /run/shm none 238G 62G 176G 26% /run/user C: 238G 62G 176G 26% /mnt/c
/mnt/cにCドライブがマウントされているようで、ここを使ってファイルのやり取りができました。